Software Model Checking by Program Specialization
نویسندگان
چکیده
We present a method for performing model checking of imperative programs by using techniques based on the specialization of constraint logic programs (CLP). We have considered a simple imperative language, called SIMP, extended with a nondeterministic choice operator, and we have introduced a CLP interpreter which defines the operational semantics of SIMP. Our software model checking method which consists in: (1) translating a given SIMP program, together with the safety property to be verified and a description of the input values, into terms, (2) specializing the CLP interpreter with respect to the above translation, and (3) computing the least model of the specialized interpreter. By inspecting the derived least model we can verify whether or not the given SIMP program satisfies the safety property. The method is fully automatic and has been implemented using the MAP transformation system. We have shown the effectiveness of our method by applying it to some examples taken from the literature and we have compared its performance with that of other state-of-the-art software model checkers.
منابع مشابه
Specialization with Constrained Generalization for Software Model Checking
We present a method for verifying properties of imperative programs by using techniques based on constraint logic programming (CLP). We consider a simple imperative language, called SIMP, extended with a nondeterministic choice operator and we address the problem of checking whether or not a safety property φ (that specifies that an unsafe configuration cannot be reached) holds for a SIMP progr...
متن کاملSpecialization of Recursive Predicates from Positive Examples Only
Problem statement: Given an overly general (definite) program P and its intended semantics φ (the programmer’s intentions) where P does not satisfy φ, find out a new version P’ of P such that P’ satisfies φ. Approach: We proposed an approach for correcting overly general programs from positive examples by exploiting program synthesis techniques. The synthesized program, P’, is a specialization ...
متن کاملSlicing Software for Model Construction
Applying nite state veri cation techniques e g model check ing to software requires that program source code be trans lated to a nite state transition system that safely models program behavior Automatically checking such a transition system for a correctness property is typically very costly thus it is necessary to reduce the size of the transition sys tem as much as possible In fact it is oft...
متن کاملInconsistency Robustness in Foundations: Mathematics self proves its own Consistency and Other Matters
ion and parsing are becoming increasingly important in software engineering. e.g., The execution of code can be dynamically checked against its documentation. Also Web Services can be dynamically searched for and invoked on the basis of their documentation. Use cases can be inferred by specialization of documentation and from code by automatic test generators and by model checking. Code c...
متن کاملHoning the Detection of Interference and Ready Dependence for Slicing Concurrent Java Programs∗
Despite the usefulness of program slicing as a software specialization and debugging tool and the popularity of concurrent object-oriented programming languages such as Java and C#, slicing techniques for these languages have yet to reach the same level of maturity as foundations and implementations of slicing for sequential languages such as C. In particular, efficiently calculating precise sl...
متن کامل